package com.cashbook.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cashbook.mapper.TbTypeMapper;
import com.cashbook.pojo.TbAdmin;
import com.cashbook.pojo.TbType;
import com.cashbook.pojo.TbTypeExample;
import com.cashbook.pojo.TbTypeExample.Criteria;
import com.cashbook.service.TypeService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import entity.PageResult;
@Service
public class TypeServiceImpl implements TypeService {

	@Autowired
	private TbTypeMapper typeMapper;
	/**
	 * 查询全部
	 */
	@Override
	public List<TbType> findAll() {
		return typeMapper.selectByExample(null);
	}
	/**
	 * 分页查询
	 */
	@Override
	public PageResult findPage(int pageNum, int pageSize) {
		PageHelper.startPage(pageNum,pageSize);
		Page<TbType> page=(Page<TbType>) typeMapper.selectByExample(null);
		return new PageResult(page.getTotal(), page.getResult());
	}
	/**
	 * 添加
	 */
	@Override
	public void add(TbType type) {
		typeMapper.insert(type);
		
	}
	/**
	 * 更新
	 */
	@Override
	public void update(TbType type) {
		typeMapper.updateByPrimaryKey(type);
		
	}
	/**
	 * 主键查找
	 */
	@Override
	public TbType findOne(Long id) {
		return typeMapper.selectByPrimaryKey(id);
	}
	/**
	 * 批量删除
	 */
	@Override
	public void delete(Long[] ids) {
		for(Long id:ids) {
			typeMapper.deleteByPrimaryKey(id);
		}
		
	}
	/**
	 * 分页查询
	 */
	@Override
	public PageResult findPage(TbType type, int pageNum, int pageSize) {
		PageHelper.startPage(pageNum, pageSize);
		TbTypeExample example=new TbTypeExample();
		Criteria criteria = example.createCriteria();
		if(type!=null) {
			if(type.getCateId()!=null) {
				criteria.andCateIdEqualTo(type.getCateId());
			}
			if(type.getHref()!=null && type.getHref().length()>0) {
				criteria.andHrefLike("%"+type.getHref()+"%");
			}
			if(type.getIcon()!=null && type.getIcon().length()>0) {
				criteria.andIconLike("%"+type.getIcon()+"%");
			}
			if(type.getName()!=null && type.getName().length()>0) {
				criteria.andNameLike("%"+type.getName()+"%");
			}
			if(type.getOpenId()!=null && type.getOpenId().length()>0) {
				criteria.andOpenIdLike("%"+type.getOpenId()+"%");
			}
		}
		Page<TbType> page= (Page<TbType>)typeMapper.selectByExample(example);		
		return new PageResult(page.getTotal(), page.getResult());
	}
	
	

}
